iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 23
0
Security

資訊系統安全與 CISSP 的簡單應用系列 第 23

[Day 23] 安全評估與測試 (Vulnerability Assessment)

  • 分享至 

  • xImage
  •  

弱點分析 (Vulnerability Assessment) 其實是安全測試 (Penetration Tests) 的前戲。弱點由「人」與「事」組成,「事」的部分包括靜態分析、動態分析、業務分析等,「人」的部分包括「專案團隊成員」、「專案級別風險」等。

我想先以一位安總在米國的同事開頭,因為今天的內容不斷讓安總想起她。她的故事仍時常令安總振奮,我們估且稱她為「米國慈禧」吧。

米國慈禧


凡是在米國的關鍵客人或高風險專案,我們都會交給慈禧,慈禧真有她的一套本事。她的嗓音能夠跨越太平洋、透過國際電話,將遠在台灣會議室的每一個人耳朵震聾。

喔對了,什麼米國、什麼慈禧的,根本是安總為了說故事而虛構的人物,各位看倌就別當真了。話說慈禧那一天怒了,她把大陸、台灣的關鍵人物全部集中在一起。
1. A,我知道你是新來的,但我還是要罵你,What are you F****** doing?
2. B,你,可以說你沒能力,但你不可以不說話!
3. 慈禧打了一個噴嚏:「哈啾!」
4. C 是我們其中一個事業頭子,他緊張地關心道:「慈禧,Please take care。」
5. 慈禧回答:「C,我為了這個事業,每天只睡四小時,我要怎麼 take care!」

靜態分析 (Static Analysis)


我們先提供一個 PowerShell 腳本來分析原始程式碼樹,以下是「統計檔案行數」範例。程式行數是一種最簡單的程式度量,雖然不能提供豐富的語意資訊,但不失為很好的分析切入點。

$root = Get-Location
"Folder 'tFile'LineCount"
Get-ChildItem *.cs -Recurse | %{
    $folderName = $_.DirectoryName.Substring($root.Path.Length);
    $lineCount = (Get-Content $_.FullName).Length
    "$folderName 't$($_.Name)'t$lineCount"
}

在分析一個資訊系統時,有一些程式閱讀的基本實踐:

  1. 閱讀者針對一個特定的主題進行閱讀,以點帶面地推動程式理解。
  2. 程式閱讀並沒有固定的讀取順序,閱讀者可由一個函數或類別切入,搜尋並閱讀它的使用程式和實作程式。
  3. 在閱讀過程中,閱讀者會產生一些想法。應該將它們記錄下來,並閱讀更多的程式來檢驗這些想法,從而獲得更深刻的理解。

污染傳播分析 (Taint Propagation Analysis)


污染傳播分析是一種基於控制流程和資料流程的程式分析方法。它重點關注資料流程,透過分析資料從何處進入軟體和資料如何何在軟體中傳播,來發掘隱藏的漏洞。

污染傳播分析是一種靜態程式檢查工具的基礎,在軟體安全領域得到成功的應用,能夠發現許多動態測試難以暴露的問題。污染傳播的核心隱喻是「汙染」和「傳播」。所謂「汙染」是指被污染的資料,其源頭通常是包含惡意資料的攻擊性輸入。所謂「傳播」是指軟體沒能過濾掉被污染的資料,讓這些惡意資料在軟體中傳播,最終導致軟體故障。
污染傳播分析圖
資料來源:
https://raw.githubusercontent.com/younggege/photos/77065cc752f4055b79d9eedb2a149b0a5428cf0c/taint.png

動態分析 (Dynamic Analysis)


動態分析

  1. 列出產品所載入的動態連結程式庫 (DLL),記錄所啟發之測試想法
  2. 列出產品打開的檔案,記錄所啟發之測試想法
  3. 分析程式之間的協作關係,記錄所啟發之測試想法
  4. 分析用戶端與伺服器之間的通訊,記錄所啟發之測試想法
  5. 分析產品的性能,記錄所啟發之測試想法

由此可知,靜態分析與動態分析,最重要的用途目的不是程式審查 (過程所發現的缺陷是副產品),而是發現所有的測試物件,以避免測試遺漏。在此基礎上,分析待測物件,構築有針對性的測試想法,提高測試執行的效率,才是動靜分析的基本出發點。如果動與靜,分別是兩種武功發展的方向,那麼您是靜之武者,還是動之武者呢?(兼一梗)

業務研究


話說米國慈禧手下,除了有一群關鍵客人照顧經理外,還有一個測試團隊,這些人在產品發布後,會陸續收到一些來自用戶的缺陷報告。這個測試團隊的典型任務歸納如下:

  1. 自動化測試監控建構的品質
  2. 安裝並使用軟體
  3. 提交缺陷
  4. 重複顯現他人提交的缺陷
  5. 提供更多的品質資訊
  6. 分析軟體在使用者情境中的表現
  7. 主動使用軟體的進階功能和進階設定,並嘗試用多種方式來操作軟體。

經過一段時間的「把玩」,他能夠較完整地理解軟體的能力,並對軟體如何解決使用者的問題形成自己的見解。

如果問安總,這世界上什麼東西最好玩?我會說,人玩人最好玩;有的人玩十個人,有的人玩 2300 萬人。有時我會覺得,自己也像是慈禧手中的「玩物」,一段不知名的記憶忽然襲來:

安總初次到了米國西岸,滿心期待能見到慈禧,但是慈禧在米國中部,還有一兩天才會回來。於是安總只能繼續行程,輾轉到了米國東岸,落地已是半夜兩點。
6. 出了機場,寒風凜冽,夜色無光,偌大的小機場上四下無人,寂靜極了。
7. 我和另一位同事 S 疑惑著該如何到達旅館,慈禧來訊息了:「打給飯店,會有接駁車。」
8. 順利到達飯店,解放了行李,我和 S 忽然鬆懈的心情使得肚子餓了,慈禧來訊息了:「一樓走到底左轉,有一個販賣機,裡面有賣泡麵。」
9. 走到了販賣機、看到了無比熟悉的泡麵,心裡不禁暖和起來,才想起我們根本沒有換零錢,慈禧來訊息了:「可以刷卡。」
10. 驚,我們仔細一看,真的有一條細細的卡縫,我們順利完成了交易,上樓,匆匆填飽了肚子便沉沉入睡了。
11. 早上醒來,我和 S 才想起自己身處另一半球的米國,應該要買點紀念品回去才划算,慈禧來訊息了:「想買紀念品嗎?回頭我請 P 找一天帶你們去。」

這就是我深愛的慈禧,操縱人心的慈禧,精準無比的慈禧,狂風怒吼的慈禧,我們在米國完美布局的慈禧。

慈禧她瞭解團隊組織、瞭解團隊成員,她瞭解專案中所提交的缺陷、數目和分布,她知道誰有真正的解決方案,她知道專案級別的風險和失敗模式,並且做出預防與控制。她是慈禧,名符其實的慈禧。


幾年前的禮拜四,其中一個事業頭要找我談精實六標準差和當年的平台軟體。看來安總需要勇敢創造自己的奇蹟了。今天又是個痛苦的讀書日,每當安總最痛苦的時候,也就是我生命最璀璨輝煌的時候,生命熠熠生輝、閃閃發亮。
六標準差
《精實六標準差》


上一篇
[Day 22] 安全評估與測試 (Security Testing Automation)
下一篇
[Day 24] 安全評估與測試 (Security Managements Tasks)
系列文
資訊系統安全與 CISSP 的簡單應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言